import java.util.ArrayList;

/**
 * @Classname Graph 图：深度优先算法和广度优先算法
 *图的表示方式：
 *  邻接矩阵：再二维数据组中按照顺序列出每个顶点连接的顶点的编号（1直接相连，0不连     ）
 *  邻接表：显示每个顶点连接的顶点
=
 */
public class Graph {

    private ArrayList<String> vertexList;//存储顶点集合
    private int[][] edges;//存储图对于的邻接矩阵
    private int numOfEdges;//边的数目
    private boolean[] isVisited;//表示节点是否被访问了

    public static void main(String[] args) {
        int n =8;
        String Vertexs[] = {"1","2","3","4","5","6","7","8"};
        Graph  graph = new Graph(n);
    }

    public Graph(int n) {
        //初始化矩阵和vertexList
        edges = new int[n][n];
        vertexList = new ArrayList<String>(n);
        numOfEdges = 0;
    }
    //获得第一个邻接节点的下标
    public int getFirstNeighbor(int index){
        for (int j =0;j<vertexList.size();j++){
            if (edges[index][j] >0){
                return j;
            }
        }
        return -1;
    }
    //根据前一个邻接节点的下标获得下一个邻接节点的下标
    public int getNextNeighbor(int v1,int v2){
        for (int j =v2+1;j<vertexList.size();j++){
            if (edges[v1][j] >0){
                return j;
            }
        }
        return -1;
    }
    //深度优先遍历算法---遍历
    private void dfs(boolean[] isVisited,int i){

    }
    //广度优先遍历算法--分层，以队列保持访问过的节点顺序，以按照这个顺序来访问这些邻接节点
    private void bfs(boolean[] isVisited,int i){

    }
}
